# 任务详情
# 下表为两个班级中4名同学的期末考试成绩，需要计算每名同学的平均成绩。


# Math	Chinese	English	Physics
# LiLei	94	99	89	60
# HanMeiMei	76	56	68	58
# ZhouQi	91	88	89	98
# MaHua	72	54	82	62
# 请在表格中插入新的一列，列名为“Average”,数值分别为每个同学的平均成绩，保留1位小数。 插入后的效果如下：


# Math	Chinese	English	Physics	Average
# LiLei	94	99	89	60	85.5
# HanMeiMei	76	56	68	58	64.5
# ZhouQi	91	88	89	98	91.5
# MaHua	72	54	82	62	67.5
# 为防止人工对数据进行计算，函数接收含有一个元组变量,请根据以上表格信息，借助Pandas库将右边gradeAverage()函数补充完整。

# 比如 tuple1 =(1,2) ，表格内成绩的第二行第三列的数值 68+1，变成69，再计算平均成绩；
# tuple2 = (0,3)，表格内成绩的第一行第四列的数值60+1，变成61，再计算平均成绩。

# 函数将插入平均成绩的 DataFrame 数据结构返回。

# 任务要求
# 1. 函数接收1个元组变量，函数返回对象为Pandas的DataFrame

# 2. 需要使用Pandas将表格转为对应的DataFrame

# 3. 请勿通过Excel手工计算平均值

# 测试用例
# 输入：(1,1)
# 输出：


# Math	Chinese	English	Physics	Average
# LiLei	94	99	89	60	85.5
# HanMeiMei	76	57	68	58	64.8
# ZhouQi	91	88	89	98	91.5
# MaHua	72	54	82	62	67.5
# 输入：(3,1)

# 输出：


# Math	Chinese	English	Physics	Average
# LiLei	94	99	89	60	85.5
# HanMeiMei	76	56	68	58	64.5
# ZhouQi	91	88	89	98	91.5
# MaHua	72	55	82	62	67.8


# 本任务，系统将遍历函数返回的DataFrame中的每个值，检验与内置测试用例是否一致。
# 
# # 1.运行或提交代码不需要自己编写测试用例，后台自动进行测试检查。
# 2.您编写代码的区域可以不限定在类或者函数体内，保证输入与输出符合任务要求即可。
# 3.点击“运行代码”按钮，可以查看程序设计是否正确，运行次数越多，任务得分越低。
# 4.点击“提交代码”按钮，系统将保存代码，并记录任务数据。
# 5.点击右上方“结束任务”按钮，系统将在后台计算任务得分，任务结束。
# -*- coding: utf-8 -*- 
import pandas as pd


class Solution:
    def gradeAverage(self, test: tuple) -> 'DataFrame':
        # 为避免测试循环执行函数报错，建议在函数内生成DataFrame
        # 请将函数补充完整，使其返回正确的值
        # 从此处开始编写代码
        data = pd.DataFrame([
            [94, 99, 89, 60],
            [76, 56, 68, 58],
            [91, 88, 89, 98],
            [72, 54, 82, 62]],
            columns=['Math', 'Chinese', 'English', 'Physics'],
            index=['LiLei', 'HanMeiMei', 'ZhouQi', 'MaHua'])

        x = data.columns[test[1]]
        y = data.index[test[0]]

        data.at[y, x] += 1

        # 方法1(次)
        data['Average'] = data.mean(axis=1)
        data['Average'] = round(data['Average'], 1)

        # 方法2(主)
        data['Average'] = data.mean(axis=1).round(1)

        return data

        pass
        # 代码编写结束
        # 


print(Solution.gradeAverage(Solution, (1, 1)))
